A resynchronization method is known from the MPEG-4 Visual standard, referred to as MPEG-4 Visual Version 1, ISO/IEC 14496-2.
The MPEG-4 standard uses video objects, which are entities in a scene that a user may access and manipulate. To enable a video object to be accessed, it is necessary to have a coded representation of its shape. The instances of video objects at a given time are called video object planes (hereafter referred to as VOPs). A video object layer is a set of VOPs, whose shape type is identified by an integer called video_object_layer_shape.
Intra coded VOPs (hereafter referred to as I-VOPs) are coded without reference to other pictures. They provide access points to the coded sequence where decoding can begin, but are coded with only moderate compression. Predictive coded VOPs (hereafter referred to as P-VOPs) are coded more efficiently, using motion compensated prediction from past intra or predictive coded VOPs, and are generally used as a reference for further prediction. Bidirectionally predictive coded VOPs (hereafter referred to as B-VOPs) provide the highest degree of compression but require both past and future reference VOPs for motion compensation. Motion vectors are defined for each 16-sample by 16-line region of a VOP, hereafter referred to as a macro-block, or 8-sample by 8-line region of a VOP, hereafter referred to as a block, as required. Vop_fcode_forward and vop_fcode_backward are integers used in motion vector decoding.
The method of resynchronization described in the MPEG-4 standard is based on a resynchronization word, referred to as resync_marker, which is inserted into the compressed video data signal. A one-bit flag called “resync_marker_disable” is set to ‘1’ to indicate that there is no resync_marker in the coded VOPs and to ‘0’ to indicate that there is such a marker. The resynchronization word defined by the MPEG-4 standard is a binary string of at least 16 zeros followed by a one ‘0 0000 0000 0000 0001’. For an I-VOP or a VOP where the video_object_layer_shape has the value “binary_only”, the resync_marker is 16 zeros followed by a one. The length of this resync_marker is dependent on the value of vop_fcode_forward, for a P-VOP, and the larger value of either vop_fcode_forward and vop_fcode_backward for a B-VOP. The relationship between the length of the resync_marker and appropriate fcode is given by 16+fcode. The resync_marker is (15+fcode) zeros followed by a one. It is only present when the resync_marker_disable flag is set to ‘0’. A resync_marker shall only be located immediately before a macro-block and be aligned with a byte.